____ _ _ _ _
| _ \ ___ | |_ (_) _ __ ___ __| | (_) __ _
| |_) | / _ \ | __| | | | '_ \ / _ \ / _| | | | / _ |
| _ < | __/ | |_ | | | |_) | | __/ | (_| | | | | (_| |
|_| \_\ \___| \__| |_| | .__/ \___| \__,_| |_| \__,_|
|_|
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b
Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―
Bc (Unix)
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
top
bc (kurz fΓΌr basic calculator) ist eine numerische Programmiersprache, die an die Syntax von C angelehnt ist, sowie ein durch den POSIX-Standard genormter Interpreter, der diese Programmiersprache implementiert und dessen Vorhandensein in dem standardkonformen Betriebssystemen vorgeschrieben ist. Das herausstellende Merkmal von bc ist die FΓ€higkeit, mit Gleitkommazahlen (fast) beliebig groΓer Genauigkeit zu rechnen; die Grenze liegt je nach Version bei mindestens mehreren tausend Stellen, meist aber bei mehreren Millionen bis Milliarden. Die ersten Versionen wurden von Lorinda Cherry bei den Bell Labs entwickelt.
Contents
β’ Arbeitsweise
β’ Varianten
β’ GNU bc
β’ Beispiele
β’ Berechnungen
β’ Weblinks
β’ Einzelnachweise
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Arbeitsweise
Der Interpreter folgt, vom POSIX-Standard so festgelegt,cite-ref-posixbc-1-0[1] den ΓΌblichen Anforderungen an Utilities, den sogenannten Utility Syntax Guidelines.cite-ref-posixutil-2-0[2] Als Eingabe werden entweder (Text-)Dateien oder Input auf <stdin> erwartet. Ziel der Ausgabe ist in jedem Fall <stdout>, Fehlermeldungen gehen nach <stderr>.
bc verwendet keine eventuell verfΓΌgbaren Gleitkommaeinheiten eines Rechners, sondern arbeitet intern nur mit Integers; die GleitkommafΓ€higkeit wird per Software hergestellt. Nur so kann die Sprache diese hohen und von verfΓΌgbarer Hardware unabhΓ€ngigen Genauigkeiten erreichen. Allerdings ist bc damit auch prinzipbedingt wesentlich langsamer als Software, die diese Einrichtungen benutzt.
Nicht nur die zu erzielende Rechengenauigkeit kann festgelegt werden, bc ist in der Lage, mit beliebigen (Zahlen-)Basen zu arbeiten und diese ineinander umzurechnen. Bis zur Basis 16 wird die ΓΌbliche Schreibweise verwendet und Ziffern jenseits der 9 durch die Buchstaben A bis F dargestellt. Die Ziffern in Basen grΓΆΓer 16 werden hingegen als aus mehreren (dezimalen) Einzelziffern bestehende Zahlen dargestellt, die durch ein Trennzeichen (meist ein Blank) getrennt sind. Dabei werden fΓΌr die Basen 17-100 zweistellige, fΓΌr die Basen 101-1000 dreistellige Dezimalzahlen und so fort verwendet. Siehe auch die Anwendungsbeispiele weiter unten.
Die von POSIX standardisierte bc-Sprache ist in ihrer Struktur an C angelehnt und in demselben Dokument ebenfalls (in Form einer LL1-Grammatik) festgelegt (unter Extended Description).cite-ref-posixbc-1-1[1] Von Haus aus enthΓ€lt bc nur einige Grundfunktionen wie etwa die Exponentialfunktion, die trigonometrischen Funktionen und den natΓΌrlichen Logarithmus. Es kΓΆnnen jedoch weitere Funktionen selbst definiert werden.
Varianten
GNU bc
Zu den Unterschieden zΓ€hlen erweiterte MΓΆglichkeiten zur Benennung von Variablen, Arrays und Funktionen, eine erweiterte if-Anweisung und anderes.
Beispiele
Die folgenden Beispiele sind mit einem POSIX-bc unter AIX (Version 7.1.5, TL 1) erzeugt. Ausgaben sind im Folgenden fett gesetzt:
Berechnungen
Dieses Beispiel zeigt, wie erst eine Funktion definiert wird, die nonrekursiv die FakultΓ€t errechnet. Danach wird diese Funktion aufgerufen um 10! auszugeben. Das Beispiel ist der man page fΓΌr bc unter AIX entnommen.
user@system $ bc
define f(n) {
auto i, r;
r = 1;
for (i=2; i<=n; i++) r *= i;
return (r);
}
f(10)
3628800
Wechsel und Umrechnung verschiedener Basen
bc unterscheidet zwischen der Basis fΓΌr die Eingabe (ibase) und die Ausgabe (obase). Etwa lautet die Darstellung der Zahl 1024 (dezimal) zu den Basen 25 und 125:
user@system $ bc
obase=25
1024
01 15 24
obase=125
1024
008 024
Weblinks
β’ bc: arbitrary-precision arithmetic language β Open Group Base Specification
β’ GNU bc Beschreibung (englisch)
β’ Free Software Directory, Γbersicht der Free Software Foundation zu bc (englisch)
β’ GNU bc zum Ausprobieren
β’ Detlef Borchers: "He who touched it last, owned it": Zum Tode der Unix-Pionierin Lorinda Cherry. In: Heise online. 17. Februar 2022. Abgerufen am 17. Februar 2022.; Zitat: βLorinda Cherry war bereits in der ersten Unix-Version vom November 1971 mit dem Programm dc (Desk Calculator) vertreten. Damit begann ihre rege TΓ€tigkeit.β.
Einzelnachweise